package hash.jcl.map.leetcode;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

/**
 * 牛客网-旧键盘问题
 * https://www.nowcoder.com/questionTerminal/f88dafac00c8431fa363cd85a37c2d5e
 * @author yuisama
 * @date 2021/12/29 17:07
 **/
public class MyKeyboard {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String expected = null;
        String actual = null;
        while (scanner.hasNext()) {
            // 期望的输出
            expected = scanner.next();
            // 实际输出
            actual = scanner.next();
        }
        // 由于题目最后输出的是大写字母，且坏的按键不区分大小写，因此将两个字符串都转为大写
        expected = expected.toUpperCase();
        actual = actual.toUpperCase();
        // 结果集存储的是在期望中有而实际不存在的字符
        // 将实际输出的字符存储在Set中
        Set<Character> actualSet = new HashSet<>();
        for (int i = 0; i < actual.length(); i++) {
            actualSet.add(actual.charAt(i));
        }
        Set<Character> ret = new HashSet<>();
        for (int i = 0; i < expected.length(); i++) {
            if (!actualSet.contains(expected.charAt(i))) {
                // 使用set过滤重复元素
                if (ret.add(expected.charAt(i))) {
                    System.out.print(expected.charAt(i));
                }
            }
        }
        System.out.println();
    }
}